package com.xique.park.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xique.common.core.web.domain.AjaxResult;
import com.xique.park.bean.domain.ParkCar;
import com.xique.park.bean.domain.ParkUpdateCarLog;
import com.xique.park.bean.request.app.ParkCarAddRequest;
import com.xique.park.bean.request.app.ParkCarDeleteRequest;
import com.xique.park.bean.request.app.ParkCarEditRequest;
import com.xique.park.bean.request.web.car.ParkVisitorCarAddRequest;
import com.xique.park.bean.request.web.car.UpdateLogRequest;
import com.xique.park.bean.request.web.parkcar.BlackCarRequest;

import java.util.List;

/**
 *车辆变更记录服务层
 */
public interface ParkUpdateCarLogService extends IService<ParkUpdateCarLog> {

    /**
     *添加车辆记录
     * @param request
     * @param parkCar
     */
    void generateAddParkLog(ParkCarAddRequest request, ParkCar parkCar);

    /**
     * 车辆变更记录查询
     * @param updateLogRequest
     * @return
     */
    AjaxResult selectUpdateCarLog(UpdateLogRequest updateLogRequest);

    /**
     * 生成删除车辆记录
     * @param request
     */
    void generateDelLog(ParkCarDeleteRequest request,ParkCar parkCar);

    /**
     * 生成批量车辆删除记录
     * @param parkCars
     */
    void generateBatchDelLog(List<ParkCar> parkCars);

    /**
     * 生成编辑后的车辆记录（管理类型 和 车位数）
     * @param request
     * @param originalCar
     */
    void generateUpdateLog(ParkCarEditRequest request, ParkCar originalCar,Integer spacesNo,Long mngTypeId);

    /**
     * 生成黑名单车辆记录
     * @param request
     */
    void generateAddBlackParkLog(BlackCarRequest request);

    /**
     * 访客车添加生成记录
     * @param request
     */
    void generateAddVisitParkLog(ParkVisitorCarAddRequest request);

    /**
     * 具体查询添加记录
     * @param id
     * @return
     */
    AjaxResult queryParkUpdateDetailInfo(int id);
}
